/*  ----------------------------------------------------------------------------
 *  Arello Mobile
 *  Fast 3d Engine
 *  ----------------------------------------------------------------------------
 * Except where otherwise noted, this work is licensed under
 * http://creativecommons.org/licenses/by/3.0
 */

#ifndef __PICTUREFORMAT_DECOMPRESSOR_H__
#define __PICTUREFORMAT_DECOMPRESSOR_H__

#include "PictureFormat.h"

namespace liba
{
namespace pictureformat
{
/** This class is used as a common interface to image loaded into memory. */
class Decompressor
{
public:
	virtual ~Decompressor()
	{}
	virtual int get_width(int frame = 0)const=0;
	virtual int get_height(int frame = 0)const=0;
	virtual Format get_best_format()const=0;
	virtual int get_frame_count()const=0;
	virtual void reset(Format f, int frame = 0)=0;
	virtual void unpack_scanline(void * dst)=0;
	virtual void skip_scanline(int count)=0;
};

} // namespace pictureformat
} // namespace liba
using namespace liba;

#endif //__PICTUREFORMAT_DECOMPRESSOR_H__